package br.com.news.mail;

import java.util.List;

import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.quartz.QuartzJobBean;

import br.com.news.rss.RmiFactory;
import br.com.news.utils.database.beans.CategoriaUsuarioBean;
import br.com.news.utils.database.beans.NoticiaBean;
import br.com.news.utils.database.beans.UsuarioBean;
import br.com.news.utils.service.exception.ServiceException;

public class JobSendNoticia extends QuartzJobBean {
	@Autowired
    private EmailSenderNoticia emailSender;

	@Override
	protected void executeInternal(JobExecutionContext arg0)
			throws JobExecutionException {
		try {
		List<UsuarioBean> usuariosAtivos = RmiFactory.getUsuarioService().buscaTodosOsUsuariosAtivos();
		
		for (UsuarioBean usuario : usuariosAtivos) {
			List<CategoriaUsuarioBean> categoriasUsuarioBean = RmiFactory.getCategoriaUsuarioService().buscaCategoriasDeEnvioEmailDoUsuario(usuario);
			for (CategoriaUsuarioBean categoriaUsuario : categoriasUsuarioBean) {
				
					List<NoticiaBean> noticias = RmiFactory.getNoticiaService().lastNews(1,0, categoriaUsuario.getCategoria().getIdCategoria());

				
				emailSender.sendEmail(usuario.getEmail(), "alexandreudicf@gmail.com","Noticia",noticias.get(0));
				
				
			}
		}
		
		} catch (ServiceException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public void setEmailSender(EmailSenderNoticia emailSender) {
		this.emailSender = emailSender;
	}
	
	
}
